home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gold Medal Software 2
/
Gold Medal Software Volume 2 (Gold Medal) (1994).iso
/
utils
/
dac231.arj
/
DAC.DOC
next >
Wrap
Text File
|
1994-01-06
|
50KB
|
1,068 lines
╒════════════════════════════════════════════╕
│ dAC │
│ Version 2.31.0 │
│ │
│ Copyright (C) 1990-1994 FM de Monasterio │
│ Licensed Material. All rights reserved │
╘════════════════════════════════════════════╛
CONTENTS
1. SUMMARY
2. REGISTRATION
3. GENERAL INFORMATION
4. INSTALLATION & USAGE
5. INSTALLATION IN UPPER MEMORY
6. BASIC TECHNICAL INFORMATION
7. OPERATION REQUIREMENTS & CONFLICTS
8. COPYRIGHT & LICENSE INFORMATION
9. DISTRIBUTION INFORMATION
1. SUMMARY
dAC is a DOS memory-resident alarm clock that displays the time at the DOS
prompt when in video text mode. The user can specify the screen attribute,
position, and format of the display; a hotkey for toggling the display off
or on; and an alarm time and associated bell parameters.
The clock is enabled only while DOS is waiting for command-line input (DOS
prompt); the hotkey can be used to override the DOS-prompt toggled status.
The resident operation can be changed on the fly by executing dAC with new
parameters from the DOS prompt (or batch file) or via the DOS enviroment.
The dAC resident can also include a tiny, additional module for poking the
current date in the keyboard buffer so as to appear at the cursor position
as if it had been entered by the user, if the hotkey were pressed when the
<Scroll Lock> key is engaged. The resident automatically becomes inactive
in BIOS/VESA graphics modes, including WINDOWS, and active again once text
mode is resumed. The default time and date formats and the unit separators
are selected from the current country DOS information data; these data can
be modified by the user.
The program requires MS-DOS version 3 or higher (or a compatible operating
system) and a Real Time Clock compatible with the IBM AT-standard. It does
not interfere with WINDOWS or with any other application in graphics mode.
See DAC.NEW for a description of what is new in the current version.
2. REGISTRATION
This software is user-supported; the present release, although lacking the
options marked by asterisks below, is a complete program. You may test the
release for (in)compatibilities with your system, but after the testing is
completed you are requested to order a registered copy of the full release
of the software from the address at the end of this documentation.
If you would rather use this unregistered copy, consider making a donation
to the Children's Hospital of Washington DC, for indigent children in need
of medical care. Every year in the USA, infant mortality claims the lives
of tens of thousands of children before their first year of life, and most
of them come from families below poverty level... Please send to the same
address a check payable to the "PATIENT CARE FUND, CHILDREN'S HOSPITAL" on
the obverse, and marked "For Deposit Only" on the reverse. Donations will
be sent to Children's Hospital. Please identify the program for which you
are making the donation.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
DAC.REG contains a form needed to register the Software
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
See the final part of this documentation for information on the Licensing,
Distribution, and Limited Warranty of this software.
3. GENERAL INFORMATION
This is a DOS-based program which, after its loading, remains installed in
memory until it is unloaded or the machine is rebooted (terminate-and-stay
resident).
dAC displays the current time on the screen if the video is in a text mode
(standard BIOS or VESA video modes), color or monochrome, and while DOS is
waiting for command-line input at the DOS prompt. The user can specify the
screen position, the video attributes, and the time format of the display;
a hotkey combination for toggling the display on or off; and an alarm time
and associated bell parameters can also be specified by the user.
The clock display is mediated by the system timer tick interrupt, which is
a service triggered about every 55 milliseconds. To avoid unnecessary use
of the time slices, the resident uses only 1 out of 4 slices to update the
time display, if this is needed. Further, the clock display processing is
enabled only while DOS is waiting for command-line input (DOS prompt), not
only to preserve the screen contents of a foreground application, but also
to avoid potential interferences with disk(ette) operations, some of which
are system-timer dependent. If desired, the hotkey can be used to override
the DOS-prompt toggling, to allow the foreground display of the clock.
A number of time and date stamp services are also available. International
support is provided for the time and date default formats, as well as unit
separators, based on the current DOS country information.
Optionally, the dAC resident can include an additional 170-byte module for
poking the current date in the keyboard buffer, so to appear at the cursor
position as if it had been entered by the user, if the hotkey were pressed
when the <Scroll Lock> key is engaged. When this key is enganged, the dAC
hotkey does toggle the clock display or or off.
Most functions can be enabled or disabled independently. The resident can
be updated on the fly by executing the program with new parameters, and it
requires less than 0.7 KB of memory. The program can selfload its resident
into a block of the upper memory area via an extended memory manager, with
or without MS-DOS 5+. The user can specify a minimum upper memory address
to select or avoid a given upper memory region.
If enabled, the dAC alarm is sounded whether at the command line of DOS or
not, i.e., independently of the DOS-prompt toggling of the dAC display. In
addition to preserving the screen of foreground applications, the toggling
is important to avoid a potential interference with disk(ette) operations,
some which are time dependent. In those cases where a clock display may be
required during a foreground operation, the hotkey can be used to override
the DOS-prompt toggling.
Program messages can be redirected via the commands '>' and '>>' of DOS.
CPU VERSIONS
The program is written in assembly language; each version consists of four
processor-type releases (086, 268, 386 and 486) in which the code has been
optimized for the CPU types of the 80x86 processor family. This is needed
since the x86 processors differ markedly in instruction execution time and
the incorporation of a memory cache in some CPU types affects such time by
influencing the speed of instruction fetching and of memory access. A 486
release should be used with a 586 CPU (Pentium) to minimize degradation of
performance vis-á-vis code alignment.
In addition to standard (086) assembly language instructions, the 286, 386
and 486 releases of the program also use 286-, 386- or 486-specific opcode
instructions in "real" mode (which is the native mode for 086 processors).
The type and degree of code optimization vary with the CPU type, and yield
relatively small differences in the resident size, which is less than 1000
bytes.
REQUIREMENTS
The program requires MS-DOS version 3 or later, or compatible DOS system,
and an IBM-compatible SVGA, VGA, EGA, MCGA/CGA, or MDA video adapter or a
HERCULES video card.
The time is read from the battery-powered Real Time Clock (RTC) which is
present in AT-type or compatible PCs, along with nonvolatile CMOS memory
(such as the Motorola MC146818 chip). dAC tests for the presence of the
RTC, and will not operate in machines lacking such a device.
SAFETY MEASURES
Each time it is executed, the program verifies its code integrity through
a number of cyclic redundancy checks (CRCs). Program execution is aborted
if any check were to fail as such a failure indicates code corruption and
the program should not be used for your own protection.
The executable program is distributed as a fully encrypted and compressed
EXE-type file in order to reduce the possibility of code tampering.
NOTE --------------------------------------------------------------------
Because both encryption and compression change the code sequences to
different values, it cannot be excluded that these processess might,
by chance, yield an encrypted data sequence which triggers a warning
from antiviral utilities that merely check disk-stored files against
a list of code 'signatures' or instructions. Though all distribution
diskettes are scanned with one such utility to avoid the possibility
of spurious warnings, the changing nature of these 'signature' lists
makes this exclusion difficult.
If using these utilities, check the registered distribution diskette
before installing the programs in your hard disk, and please contact
the vendor (see below) if a spurious warning were triggered.
--------------------------------------------------------------------
4. INSTALLATION & USAGE
In the descriptions below, {} enclose context variables, e.g., the number
{n}, whereas <> enclose alphanumeric characters or keys, e.g., the letter
<n>.
The enclosed utility INSTALL.EXE may be used to copy the program files to
a user-defined drive and directory, and--if so desired--to add statements
to the file AUTOEXEC.BAT so that the program is loaded automatically upon
booting and to append the user-defined directory to the PATH statement.
MANUAL INSTALLATION
Alternatively, to install the program manually, add the command
{path}DAC [/SWITCH1 ... /SWITCHn] [;comments]
to the AUTOEXEC.BAT file, if you wish to have the program installed after
booting the system, or simply enter this command from the DOS prompt when
you want to use the program. If given, {path} must specify the drive and
subdirectory for the file DAC.EXE.
Square brackets enclose optional command arguments; [/SWITCH1.../SWITCHn]
are program command switches, whereas [;comments] are comments that might
be useful to clarify batch file usage.
If executed with a null argument (i.e., switches were not specified), the
program searches the DOS environment block for a variable with the format
DAC=/SWITCH1 ... /SWITCHn, to use these switches as program commands (see
switch EV below).
If the execution command has null arguments, an environment variable does
not exist, and the resident is not yet installed, then the default (i.e.,
preselected) configuration is used for the installation. If the resident
is already installed, and an environment variable does not exist, a null-
argument command has no other effects than updating the resident in terms
of the video system. The default cases of the various switches are given
below.
Once installed, the resident can be modified at any time by executing the
program with new parameters. If other memory-resident programs were also
used, make sure all residents installed are 'well behaved' and pass along
the necessary interrupt data (see 'OPERATION REQUIREMENTS & CONFLICTS').
COMMAND SWITCHES
These switches allow for the modification of the default (preselected) or
of an already selected resident configuration, or the execution of one of
the non-resident services provided by the program (e.g. display of a Help
panel, adjustment of display brightness, etc).
The switches can be specified in any order, and they must be separated by
a space, tab, comma, or slash; a dash preceded by space may also be used.
They are not case sensitive, e.g., /EV = /Ev = /eV = /ev. Invalid switch
specifications may result in an error message or in program cancellation.
When parsing the command line, the program converts all switch separators
to slashes. Switches consist of 2 letters; when a single letter would be
an unambiguous specification only the first switch character is required:
for instance, both /U and /UL are recognized as requests to uninstall the
resident from memory.
Whereas some switches have a single status (e.g., uninstall the resident)
others may have more than one status (e.g., a on/off display toggle). The
program has built-in (default) values for some switches, values which are
used if a new value is not specified when installing the resident. These
switch defaults are
/BD64/BF440/BN3/HC+/HK+/HKT6/TD+/TS+
Other switch defaults are contigent on the current system status, such as
DOS country information (SC, TH, VS), video mode (VP) and video attribute
at cursor position (VA).
The following switches are recognized:
---------------------------------------------------------------------
(*) Asterisks mark options not available in the unregistered copy
---------------------------------------------------------------------
SWITCH ?
~~~~~~~~
This switch displays the Status/Usage/Help panels, which are described in
more detail in the section below. If a VGA or EGA is the active adapter,
the program saves the contents of the palette registers prior to changing
the video attributes for its various displays. See section 'STATUS/USAGE/
HELP PANELS' below.
EGA users: The default MS-DOS palette attributes are restored if the EGA
BIOS fails to store data in the Parameter Save Area. Old EGAs
may store invalid data in this area, resulting in an improper
restoration of the video attributes (use the DOS command MODE
CO80 to restore the default attributes).
* SWITCH AT
~~~~~~~~~
Alarm times are given as hour {h} and, optionally, minute {m}, and second
{s}. Only one alarm may be active at any given time, and it occurs every
24 hours at the selected time. Alarm services are BIOS mediated and need
a CMOS time/date chip.
AT? Display the current alarm status.
AT+ (Re-)Enable alarm operation.
AT- Disable alarm operation; this is the default condition
if a switch argument is not specified.
AThh[:mm:ss] Alarm time using a 24-hour format, i.e. {hh}=0-23. The
use of {mm} and of {ss} is optional; if not specified,
a value of 0 is used.
AThh[:mm:ss]x Alarm time using a 12-hour format, i.e. {hh}=1-12. The
use of {mm} and of {ss} is optional; if not specified,
a value of 0 is used. Use {x}=A[M] or P[M] to indicate
ante or post meridian time.
Defaults: /AT = /AT+; AThh:mm = /AThh:mm:0; /AThh = /AThh:0:0; no switch
on installation = /AT-.
NOTE -----------------------------------------------------------------
The time separator <:> varies with DOS country information format
in use. The above examples assume USA country information format.
------------------------------------------------------------------
* SWITCH BD
~~~~~~~~~
Alarm bell duration. Use BDn, where {n} is between 1 (shortest) and 128
(longest). Defaults: /BL = /BL64; no switch on installation = /BL64.
* SWITCH BF
~~~~~~~~~
Frequency or pitch of alarm bells in cycles/second (Hertz). Use BFn, where
{n} is between 25 Hz (low) and 5000 Hz (high). Defaults: /BF = /BF440.
* SWITCH BN
~~~~~~~~~
Number of alarm bells. Use BNn, in which {n} is between 1 and 8. Defaults:
/BN = /BN3; no switch on installation = /BN3.
* SWITCH EV
~~~~~~~~~
When the _initial_ copy of COMMAND.COM is loaded at boot time, it creates
a block of memory that will contain the master or global DOS environment.
The environment of DOS consists of a number of text-based variables, each
variable consisting of a name and an associated string having the format:
VARIABLE=string of characters
in which the end of the string is marked by a zero byte. The environment
contains a series of such variables, and the end of the environment block
itself is indicated by an additional zero byte. These variables are used
to pass information to and from COMMAND.COM (or a DOS shell replacement),
batch files, and application programs, such as the PATH= and the COMSPEC=
variables.
Switch EV creates or, if it already exists, updates the environment block
variable:
DAC=/SWITCH1/SWITCH2.../SWITCHn
where /SWITCH1.../SWITCHn are the command switches to be implemented when
the program is executed from the DOS command line or a batch file without
any arguments. Although switch EV itself is incorporated in the variable
as well, it is ignored when such variable is used to provide input to the
program. (See 'ENVIRONMENT VARIABLE DAC' for more details.)
No defaults.
SWITCH HK
~~~~~~~~~
Hotkey combination to toggle display on and off. The default combination
is <Left-Shift><Ctrl><T>. The hotkey is also used for the date-at-cursor
stamp service provided by switch SC (see below).
HK? Permit selection of a new hotkey combination including
an alphanumeric key, and one or more of the shift keys
<Ctrl>, <Alt>, <left-Shift>, and <right-Shift>.
HK+ Enable hotkey operation; this is the default condition
if a switch argument is not specified.
HK- Disable hotkey operation. Can be reenabled with /HK+.
* HKxn Select {xn} as the hotkey combination, in which {x} is
a alphanumeric character (0-9 or A-Z) only, and {n} is
a digit between 4 and 15 only. This digit corresponds
to one of the following shifting keys or their sum:
1 = <right-Shift> --------------------------
2 = <left-Shift> Values higher than 15 or
4 = <Ctrl> lower than 4 are invalid
8 = <Alt> --------------------------
For obvious reasons, <Ctrl> or <Alt>, or both, must be part of a new hot-
key combination either in switch HK? or HKxn. If a hotkey other than the
default combination is needed routinely, it may be useful to store in the
DOS environment the variable 'DAC=/HKxn' (see below).
Defaults: /HK = /HK+; no switch on installation = /HK+ /HKT6.
* SWITCH LH
~~~~~~~~~
Loads the resident in the Upper Memory Area (UMA), between addresses 640
KB and 1,024 KB of memory; this is the region below the 1-MB boundary of
the memory accessible by 086 CPUs, but above the 640-KB hardware barrier
of MS-DOS. The switch requires an available upper memory block (UMB) of
about 1 KB, which is allocated by the program itself either via a direct
XMS request or, if MS-DOS controls UMB allocation (i.e. DOS 5+ linked to
the UMA through the command 'dos=umb' in the CONFIG.SYS file), via calls
to DOS. Allocation of UMBs requires the presence of an XMS manager (XMM)
supporting the UMB services 10h-11h of XMS 2+, and (if the XMM lacks the
capability of remapping memory) the presence of an UMB provider.
SWITCH LHn
A lower upper-memory limit for the UMB loading can also be requested via
switch LHn, in which {n} is a four-digit hexadecimal number between A000
(640 KB) and FF00 (1,020 KB), in order to avoid or select specific areas
of upper memory.
Defaults: Low-memory installation if any error is found during the UMB
loading; high-memory installation below lower-address limit if UMBs are
not available above such limit.
SWITCH QU
~~~~~~~~~
Forces the resident to become quiescent until the next time the program is
executed, provided that neither switch QU nor ? is specified at such time.
No defaults.
SWITCH RC
~~~~~~~~~
Resets the resident gate controlling the clock display at the DOS prompt,
in case a forcing of this display is desired. No defaults.
* SWITCH SC
~~~~~~~~~
Date stamp-at-cursor. Use SC to add a 170-byte module to the resident that
loads the keyboard buffer with the current date stamp (month day, year) if
the hotkey combination is pressed while the Scroll Lock is enganged (i.e.,
the <Scroll Lock> key is toggled on).
The stamp is displayed on the screen whenever the next request to read the
keyboard via interrupt 16h is issued, and the stamp format is based on the
current country DOS information data (mm/dd/yyyy, USA; dd/mm/yyyy, Europe;
yyyy/mm/dd, Japan). Switch SC is ignored after the resident is installed.
No defaults.
SWITCH SH
~~~~~~~~~
Display an 8-character hexadecimal stamp (used by DOS for stamping files),
which has a time resolution of 2 seconds or more. No defaults.
SWITCH SJ
~~~~~~~~~
Display the current date using the Julian format (number of days since the
1st of January, year). A leap year is defined as a year which is divisible
by 4 but not by 100, or is divisible by 400. No defaults.
SWITCH ST
~~~~~~~~~
Display the current Date/Time stamp (read from the system timer count area
of the BIOS). Uses USA country information format. No defaults.
* SWITCH SW
~~~~~~~~~
Stopwatch to measure execution times. Use SW"[path]NAME.EXT [options]", in
which <EXT>=COM or EXE. The file specification must be enclosed by double
quotes. To measure batch file or DOS internal command execution time, use
SW"[path]COMMAND.COM /C {NAME.BAT} or {DOS command}".
Proper timing operation needs a timer chip fully compatible with the 8253/
8254 timer chip of the IBM PC/AT standard. dAC checks for a Micro Channel
architecture (PS/2 machines) and adjusts its timing operation accordingly.
With machines not compatible with the 8253 chip, use switch SW2 instead of
SW if timings were to degrade DOS time counts. No defaults.
SWITCH TD
~~~~~~~~~
Toggle clock display on and off from the DOS command line; it also permits
to display of the clock outside the normal DOS-prompt display restriction.
TD+ Enable clock display.
TD- Disable clock display.
Defaults: /TD = /TD+; no switch on installation = /TD+.
SWITCH TH
~~~~~~~~~
Toggle clock display between 12-hour (1-12) and 24-hour (0-23) time format.
TH12 Use a 12-hour format time display.
TH24 Use a 24-hour format time display.
Default: No switch on installation = Current country information data from
the KEYBxx keyboard driver, if one is loaded, or the default country code.
SWITCH TS
~~~~~~~~~
Toggle on and off the display of seconds.
TS+ Use <hour:minute:second> time format display.
TS- Use <hour:minute> time format display.
Defaults: /TS = /TS+; no switch on installation = /TS+.
SWITCH UL
~~~~~~~~~
Uninstalls the resident code from memory. This request is disregarded if
the address of any of the interrupts intercepted by the resident has been
modified since the program was installed. The revectoring indicates that
another resident has subsequently hooked the same interrupt(s). Thus, the
program cannot be uninstalled, because this would leave such interrupt(s)
pointing to empty memory, and the program would then crash.
The program should be uninstalled only if it is the last resident to have
been installed. In practice, however, it can also be uninstalled when any
subsequently installed resident intercepts different interrupts; although
this increases fragmentation of memory, the resulting "hole" is innocuous
and can be used by DOS for other purposes (e.g., an environment block).
No defaults.
SWITCH VA
~~~~~~~~~
Video attributes of the clock display.
VA? Show current video display attributes and allow the selection
of new attributes for the display in an interactive manner.
VAhh Select new video display attributes from the DOS command line
where {hh} is a 2-digit hexadecimal number between 00 and FF,
representing the attribute of the background (1st digit), and
the attribute of the foreground text (2nd digit):
0 - Black 8 - Gray
1 - Blue 9 - Intense Blue
2 - Green A - Intense Green
3 - Cyan B - Intense Cyan
4 - Red C - Intense Red
5 - Magenta D - Intense Magenta
6 - Brown E - Yellow
7 - White F - Intense White
NOTE ------------------------------------------------------
A background video attribute of 8 or higher normally
produces a blinking text display.
------------------------------------------------------
Default: No switch on installation = Screen attribute at cursor position.
SWITCH VP
~~~~~~~~~
Video coordinates of the clock display.
VP? Show the current screen coordinate of the _last_ character of
the clock display. Variations of display format (e.g., TH or
TS) do not affect the position of the last character.
VPc:r Select a new display coordinate from the DOS command line, in
which {c} is the column and <r> is the row within the current
video mode. The colon between coordinates c:r is mandatory.
Default: No switch on installation = Upper right corner of the screen, as
based on the current video mode (either standard BIOS, e.g. 80:01, or VESA
video mode, e.g. 132:01).
* SWITCH VS
~~~~~~~~~
Time units separator. Use /VSx to define the character {x} separating time
units in the clock display.
Default: No switch on installation = Current country information data from
the KEYBxx keyboard driver, if one is loaded, or the default country code.
COMMENTS
The comments may be added in the command line after the desired switches
and must be preceded by a semicolon. Such comments, which may be useful
in clarifying batch files, are ignored by the program.
Do not use the redirection and pipe characters in the comments since DOS
will attempt to implement the implied redirection or pipe request.
STATUS/USAGE/HELP PANELS
Executing the program with switch /? selected allows access to the Status/
Usage and Help panels. (If a Mouse pointing device driver, compatible with
the Microsoft Mouse driver version 6.0 or higher is loaded and active, all
of the services provided by these panels can also be activated by pointing
the mouse to specific areas of the screen and clicking either button. The
mouse driver state is saved prior to the display, to be restored later, if
sufficient memory is available for the panel display.)
The STATUS/USAGE panel, which is shown first, describes status information
for the resident and its services. If the program has not been installed,
pressing key <F3> or <D> shows the default installation parameters. If it
is installed, pressing key <F3> or <T> sets the clock alarm to the current
time for testing purposes.
The USAGE subpanel shows a menu for the command switches: To cycle between
the main and the auxiliary menu, press key <F2> or <M>, or click the mouse
upon the screen button labelled <Menu>. If the resident is installed, the
status of some 'on/off' command switches is displayed by '+' or '-' before
a given menu entry.
Press key <F7>, or <X>, or click the mouse upon the screen button labelled
<Exit> to return to the DOS-prompt command line.
The HELP panel provides a summary description of the program and commands,
and is displayed if key <F1> or <H> is pressed from the Status/Usage panel
(or if the mouse is clicked upon the screen button labelled <Help>). Press
the keypad cursor keys (Home/End, PgUp/PgDn, arrows) to scroll the display
down or up or the key <S> to scroll in a closed loop; alternatively, click
the mouse upon the Up/Down arrows at the top right corner of the screen to
scroll. Press key <F1> to skip the brief program summary and position the
text on the Usage section directly.
A beating icon to the left of the preceding USAGE panel controls the speed
of screen scrolling of the HELP panel via key <S> or the mouse arrows. By
positioning the mouse pointer over the beating heart and clicking the left
or right mouse button, the rate of scrolling can be respectively increased
or decreased; the scrolling rate can also be changed by clicking the mouse
on the icon that becomes visible on the top line of the HELP panel (if the
mouse driver is installed).
Press key <Esc> or <F2>, or click the mouse upon the rightmost icon at the
top left corner of the screen, to return to the Status/Usage panel. Press
key <F7> or <X>, or click the mouse upon the leftmost icon, to exit to the
DOS-prompt command line.
THE ENVIRONMENT VARIABLE DAC
When the program is executed from the command line of DOS or a batch file
without an argument, it searches the DOS environment block for a variable
named 'DAC' having the format:
DAC=/SWITCH1/SWITCH2 .... /SWITCHn
Up to 128 characters are allowed after the equal sign. This string can be
incorporated to the environment block via the 'SET' command of DOS or via
switch EV of this program (see above).
The variable can be used to specify a program default configuration which
can be restored just by executing the program without an argument after a
temporary change of parameters.
While the SET command modifies the current DOS environment block, whether
it is the global or a local one, switch EV only modifies the global block
(even when the program is executed via a secondary COMMAND.COM, as in the
case of shelling out to DOS from an application). Notice that the local
environment block is only a copy of the global block and lacks sufficient
room to increase significantly the length of a variable, and that changes
made to a local environment are not inherited by the global one.
When searching for the environment variable, the program uses the current
DOS environment block, whether it is the global or a local one.
5. INSTALLATION IN UPPER MEMORY
This section describes in more detail aspects of the active (i.e., self-
loading) or passive (e.g. via DOS LOADHIGH) installation of the resident
in the upper memory region.
UMA SELF-LOADING
The utility can self-install the resident in the upper memory area (UMA),
that is, RAM addresses between 640 KB and 1,024 KB, via switch LH (or its
subfunction LHn).
The allocation of UMA blocks (UMBs) is arbitrated by an XMS manager (XMM)
version 2.0 or higher; the XMM must be installed prior to the UMB-loading
of the resident. Allocation also requires the remapping of UMA addresses
by a UMB provider, when such a task is not implemented by the XMM itself.
The XMM HIMEM.SYS and the UMB-provider EMM386.EXE are distributed with MS
DOS 5+. The allocation of UMBs is controlled by DOS when these 2 drivers
are installed, and the command 'dos=umb' is added to the CONFIG.SYS file.
With DR-DOS 6+, UMB remapping and XMS support are provided by EMM386.SYS.
Other 386-specific memory managers, of course, also provide UMB remapping
and XMS support. All XMMs require MS-DOS version 3 or later.
Switch LHn, where A000 ≤ n ≤ FFFF (hexadecimal), allows the specification
of a minimum upper-memory limit for the UMB to avoid UMA regions having a
very slow access time (or to preserve regions with a fast access time for
other utilities that require faster times, such as a disk cache or screen
accelerator), or to avoid fragmentation of the UMA when UMB allocation is
not controlled by MS-DOS 5+, but by the XMM itself. The fragmentation may
occur when the XMM allocates blocks on a first-fit basis, i.e., the first
available UMB having the lowest UMA address is allocated, irrespective of
whether or not a (smaller) block matching the requested size is available
at a higher UMA address. Unless the size of the available UMBs increases
with increasing memory address, first-fit allocation of a small UMB leads
to the breaking of large UMA blocks into smaller ones, thus hampering the
UMB installation of larger residents.
If MS-DOS 5+ controls UMB allocation, the program enforces the allocation
of the resident block on a best-fit basis when {n} is not specified, that
is, all available blocks are searched (by DOS), and the one matching most
closely the size requested is allocated.
When DOS controls UMB allocation and {n} is specified, UMBs are allocated
on a first-fit basis. While this may contribute to UMA fragmentation, it
allows for the checking of a minimum memory limit in those cases in which
the selection or avoidance of a specific UMA region is more important.
Hence, compared to the upper-memory loading provided by the LH command of
MS-DOS 5+, the HILOAD command of DR-DOS 5+, or a similar service provided
by other memory managers, self-loading into a UMB has several advantages,
including: (1) it does not require an initial free UMB of the size of the
entire program (as opposed to the size of its resident only), (2) it does
allow user control on the selection of the upper-memory block, and (3) it
can help reduce UMA fragmentation.
NOTE -------------------------------------------------------------------
The address and size of available UMBs can be obtained with MEM.EXE
(when DOS controls UMB allocation) or via the memory manager itself
(when the allocation is controlled by 386-specific memory managers.
In either case, such data can also be obtained with UMAX.EXE, a UMA
mapping utility that is distributed by the author.
-------------------------------------------------------------------
UMA LOADING VIA MEMORY MANAGERS, DR-DOS 5+, or MS-DOS 5+
The resident can also be installed in the UMA via a 386-memory manager or
DR-DOS 5+/MS-DOS 5+ commands (e.g., HILOAD, LH, etc), provided that there
is a sufficiently large, free UMB for the actual size of the entire file,
and any for additional memory that may be required by the loading service
itself.
Please note that, to minimize disk storage, the program is distributed as
a compressed EXE file that expands on execution by a factor of 2 or less.
Thus, the difference between the actual size upon loading and the nominal
directory size may create conflicts with UMA-loading services that do not
measure actual size: If the available upper memory were smaller than that
required by the decompressed file but larger than the nominal (directory)
size, such service would attempt to load the compressed file. Of course,
the subsequent file decompression would overwrite the adjacent memory and
likely crash the memory manager or DOS!
When attempting to load the resident in a UMB via a memory manager or DOS
5+, do NOT request in the same command line switches that result in panel
displays. These displays require an additional 8,000 bytes of *adjacent*
free memory, and the free RAM measuring procedure used by the program can
be negated by UMA-loading services that do not update the program segment
prefix (PSP) of the program being loaded. Such switches are VA?, HK?, and
/?.
IDENTIFICATION IN MEMORY MAPS
If the resident has been loaded in lower conventional memory, the program
can be identified by name in usage maps yielded by various memory mapping
utilities. Although the program sheds its own copy of the environment at
installation time (to minimize the resident size), the name
dAC x.yy.z
will appear in the command line listing for the resident, irrespective of
the actual content of the DOS command line at the time of loading; x.yy.z
are the ASCII major.minor.revision version numbers, e.g., 2.30.0.
However, when UMB loading is mediated by the XMS directly (e.g., extended
memory manager and DOS versions 2-4, or MS-DOS 5+ not linked to the upper
memory) and the resident is selfloaded via switch LH, many memory mapping
programs do not list the allocated block, or lump it with other allocated
blocks, or fail to reveal the name of the resident.
If the UMB allocation is controlled by MS-DOS 5+, the UMB resident can be
identified with some mapping utilities (e.g., MEM.EXE of MS-DOS) although
it is listed as "Data" instead of "Program."
6. TECHNICAL INFORMATION
INTERRUPTS
Whenever certain conditions occur, either within a program or the system,
it becomes necessary for the processor to interrupt its current operation
and execute one of a group of special routines. The action that triggers
the execution of such a routine is referred to as an interrupt; there are
internal interrupts, in response to a state of the CPU or an instruction,
and external interrupts, caused by signals sent to the CPU from elsewhere
in the system.
When the program is waiting for keyboard (or mouse) user input during its
Status/Usage/Help display, it invokes repeatedly the 'idle' interrupts of
DOS: INT 28h and, if running under MS-DOS 5+, function 1680h of INT 2Fh,
if this function indicates that it can process program suspension.
INT 28h permits potential background activation of (some) other residents
while INT 2Fh/1680h permits MS-DOS 5+ to suspend the program temporarily,
and transfer control to another program.
The program resident intercepts the following interrupts:
INT 09h - Hardware Keyboard
INT 16h - BIOS Keyboard
INT 10h - BIOS Video
INT 1Ch - BIOS System Timer
INT 21h - DOS System Services
INT 2Fh - DOS Multiplex Services
The resident monitors interrupt 21h and 2Fh to detect when DOS is waiting
to read the command-line user input, i.e., if the foreground operation is
at the DOS prompt, to open or close the clock display gate. The interrupt
thus gating the clock display is identified on the Stats/Usage panel.
Interrupt 21h is used to toggle the clock display for MS-DOS, PC-DOS, and
MS-based OEM DOSes version 4 or earlier, and DR-DOS version 6 or earlier.
For MS-DOS and PC-DOS version 5 or later, interrupt 2Fh is used if DOSKEY
or any DOS command-line editor supporting function 4810h of interrupt 2Fh
('Read Command Line' function of DOSKEY) is installed; else interrupt 21h
is used. See OPERATION REQUIREMENTS & CONFLICTS below when using DOS 5+.
Although there are some applications that use the same interrupt services
to receive user input for their operations as DOS, the dCA clock will not
be displayed during these applications unless the buffer input parameters
match those of DOS at its command line.
INSTALLATION CHECK
Interrupt 2Fh is also used by this program to determine if its resident is
already installed via the following INT-2Fh call,
Registers at call:
BX = 'dA' API signature
AH = 'C' API signature
AL = 0 Installation check request
Return registers if successful:
AX = ES Segment address of paragraph aligned TSR
BX = NOT 'dA' API countersignature
and
ES:[81h] -> Verification signature 'dAC x.yy.z' where
x.yy.z are the ASCII major.minor.revision
version numbers.
DOS ERRORLEVELS
Upon completion, the program passes an errorlevel value which can be used
to check (via ERRORLEVEL commands in a batch file) the outcome of program
execution. The following errorlevels may be passed:
Value Nature of Error
----- ------------------------------------
255 Cyclical redundancy check failure
255 CPU type cannot execute 286/386/486 version
255 Invalid DOS version
64 XMM not installed or XMS error in UMB load
32 Error in update of environment variable
16 Invalid hotkey combination
8 Unknown video adapter
4 Unable to uninstall resident
2 Invalid switch request
1 User <CTRL-BREAK> keypress
0 Successful execution
Some conditions generating errorlevels 1 through 128 may be additive, and
the resulting error value may represent more than a single error.
CMOS STORAGE LAYOUT
The 64-byte, nonvolatile CMOS memory (Motorola MC146818 chip) of AT-class
and compatible machines contains information on the current time and date
as well as hardware configuration. Addresses 16 through 32 are protected
by a 16-bit checksum.
RTC registers: Other registers:
0 Seconds (BCD) 14 Diagnostics status byte
1 Alarm on seconds (BCD) 15 Shutdown status byte
2 Minutes (BCD) 16 Diskette drive type
3 Alarm on minutes (BCD) 17 Reserved
4 Hours (BCD) 18 Hard disk drive type
5 Alarm on hours (BCD) 19 Reserved
6 Day of week (Sunday=0) 20 Equipment byte
7 Day of month (BCD) 21-22 Base memory size
8 Month (BCD) 23-24 Extended RAM above 1MB
9 Last 2 digits year (BCD) 25 Disk 1 type (if > 15)
26 Disk 2 type (if > 15)
10 RTC status register A 27-32 Reserved
11 RTC status register B 33-45 Reserved
12 RTC status register C 46-47 Checksum CMOS addr 16h-32
13 RTC status register D 48-49 Extended memory above 1MB
50 Current century (BCD)
51 Miscellaneous information
52-63 Reserved
7. OPERATION REQUIREMENTS & CONFLICTS
The resident will not operate properly if access to the interrupts listed
above is denied by another program or resident. This can occur with some
ill-behaved programs which take over the interrupts and fail to chain the
information to other utilities tapping the same interrupts (see TECHNICAL
INFORMATION).
NOTE --------------------------------------------------------------------
dAC must be installed AFTER installing DOSKEY or any similar command
line editor, as otherwise the clock will not be displayed during the
DOS prompt unless it is toggled on via the dAC hotkey (in which case
the clock display will not limited to the DOS-prompt).
--------------------------------------------------------------------
This program is not compatible with Microsft WINDOWS. Through monitoring
of the video mode, the time display and the hotkey access of the resident
become inactive when graphics-mode based programs, such as WINDOWS, start
up and become active again when text mode is restored.
If you encounter conflicts with a given text-mode foreground application,
these may be avoided by loading the application via a batch file with the
following commands:
@Echo Off
...
[path]DAC /TD-/HK-/QU ; clock inactive
<application>
[path]DAC /TD+/HK+ ; clock active
...
8. COPYRIGHT & LICENSE INFORMATION
This documentation, programs, and other files distributed in this software
package (the "Software") are the copyrighted property of FM de Monasterio
(the "Author"), who provides the Software and licenses its use. All rights
are reserved.
The Software is not sold. A license fee is required to use this Software.
This license does not transfer to you either the ownership of or the title
to the Software, which remain the property of the Author. A form required
to license the Software is provided in the enclosed file DAC.REG.
SINGLE USER LICENSE. Grants you use of this Software in a single computer
at a time; the Software may be transferred to another computer, as long as
it is used only in 1 computer at any time; under the license, the Software
may NOT be installed on a network server.
SITE/15-PCs LICENSE. Grants you use of this Software in a sigle site or a
set of sites, as long as the Software is not used in more than 15 machines
at a time, and that such machines are located exclusively within the site.
Licenses for more machines are available at discounted prices.
SOFTWARE BUNDLING LICENSE. Please write to the Author.
REFUNDS POLICY. If a problem notified within ninety (90) days of shipping
of the registered copy cannot be solved, the registration fee (but not the
shipping costs) will be refunded upon receiving a written request with the
original diskette(s) enclosed.
UPGRADE POLICY. Program upgrades are limited to licensed users. Upgrades
within the same major version (e.g. release 4.00 through 4.99) are free of
charge when a self-addressed, stamped, 5.25" diskette mailer with a 360-KB
diskette is included with the request. Other upgrades are charged half the
(single-user/site) registration fee. See the enclosed file DAC.UPG.
U.S. GOVERNMENT INFORMATION
The Software is Commercial Computer Software under the Federal Acquisition
Regulations of the U.S. government and the Agency Supplements to them. The
Software is provided to the Federal Government and its agencies only under
the Restricted Rights Provisions of the above noted regulations applicable
to commercial software developed at private expense, and not in the public
domain. The use, duplication, or disclosure of the Software by the Federal
Government or its agencies is subject to the restrictions set forth in the
subdivision (c.1.ii) of the Rights in Technical Data and Computer Software
clause at DFARS 252.227-7013 (October 1988) and FAR 52.227-19 (June 1987).
9. DISTRIBUTION INFORMATION
You may distribute the Software, but you are specifically prohibited from:
- Charging fees or asking donations in exchange of or payment
for copies of this Software.
- Distributing this Software with commercial products without
the written, express permission in advance from the author.
- Distributing this Software via a for-profit organization or
group, either alone or with other software.
- Changing any of the contents of this Software including the
copyright notice and license information.
You may not disassemble or otherwise reverse engineer the Software. Other
uses of the Software are prohibited without a written authorization signed
by the Author.
Latest program releases may be found at the Information Exchange BBS (703)
836-0748, as a compressed archive file.
WARRANTY DISCLAIMER FOR UNREGISTERED COPIES
The information contained in the documentation for the Software is subject
to change without notice.
The Author cannot and does not warrant that any functions contained in the
Software will meet your requirements, or that its operations will be error
free. The entire risk as to the Software performance or quality, or both,
is solely with the user and not the Author. You assume responsibility for
the selection of the Software to achieve your intended results and for the
installation, use, and results obtained from the Software.
The Author makes no warranty, either implied or expressed, including with-
out limitation any warranty with respect to this Software documented here,
its quality, performance, or fitness for a particular purpose. In no event
shall the Author be liable to you for damages, whether direct or indirect,
incidental, special, or consequential arising out the use of or any defect
in the Software, even if the Author has been advised of the possibility of
such damages, or for any claim by any other party.
All other warranties of any kind, either express or implied, including but
not limited to the implied warranties of merchantability and fitness for a
particular purpose, are expressly excluded.
By using the Software, you acknowledge (1) to have read and understood all
parts of this document and (2) to have agreed with and accepted all of its
terms and provisions without any reservation.
For information on the terms of the Limited Warranty for licensed Software
copies or any other information on this program, please write to:
FM de Monasterio
P.O. Box 219
Cabin John, MD 20818-0219
USA
┌─────────────────────────────────────────────────────────────┐
│ Trademarked names are the property of the respective owners │
└─────────────────────────────────────────────────────────────┘
[end]